package cc.linker.steplink.crm.merchanth5.dao.acs;

import cc.linker.steplink.crm.merchanth5.pojo.acs.ProtectPo;
import cc.linker.steplink.crm.merchanth5.pojo.acs.RefundParamPo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface ProtectRecordDao {

    List<String> getOrderSnList();

    Integer getOtherOrderSnList(String orderSn);

    List<ProtectPo> getInProtectPoList(String orderSn);

    List<ProtectPo> getOutProtectPoList(String orderSn);

    List<ProtectPo> getInProtectPoListInTime(String orderSn);

    List<ProtectPo> getOutProtectPoListInTime(String orderSn);

    List<ProtectPo> getInProtectPoListInTimeAmount(String orderSn);

    ProtectPo getInProtecScore(String orderSn);

    List<ProtectPo> getOutProtectPoListInTimeAmount(String orderSn);

    void insertOld(ProtectPo protect);

    void insertOldScore(ProtectPo protect);

    Long getAllAmount(String orderSn);

    Long getAllRefundAmount(String orderSn);

    Long getAmount(String orderSn);

    Long getRefundAmount(String orderSn);

    void addRefund(ProtectPo inProtect);

    Map<String,String> getTake(String orderSn);

    void updateIsEnd( Map<String,Object> param);

    List<ProtectPo> getInProtectPoListNo(String orderSn);

    void setEndTime(Map map);

    Integer getOtherRefundCount(Map<String, Object> param);

    void updateOrderRefundState(Map<String, Object> param);

    void updateOrderGoodsStatus(Map<String, Object> param);

    void updateProtectStatus(Map<String, Object> param);

    Integer getfreezeTime(String orgId);

    void updateEndTime(Map<String, Object> param);

    List<ProtectPo> getRefundList(Map<String, Object> param);

    void reduceFreezeByOrgId(Map<String, Object> param);

    void addFreezeByOrgId(Map<String, Object> param);

    void reduceFreezeBySaleCustomerId(Map<String, Object> param);

    void reduceFreezeByUserCustomerId(Map<String, Object> param);

    void reduceCustomerScoreFreezeByCustomerId(Map<String, Object> param);

    Long getAllAmountByRecId(Long recId);

    Long getLinkerAmountByRecId(Long recId);

    Long getBalanceAmountByRecId(Long recId);

    Long getInProceduresB(String orderSn);

    Long getOutProceduresB(String orderSn);

    Long getInProceduresL(String orderSn);

    Long getOutProceduresL(String orderSn);

    Long getAmountScore(String orderSn);

    Long getRefundAmountScore(String orderSn);

    void updateStatusConfirm(Map<String, Object> param);

    Integer getOverCount(Map<String, Object> param);

    void cancelStatusConfirm(Map<String, Object> param);

    Long recIdRefundCount(@Param("recId") Long recId);

    Integer getNotDeliverCount(Map<String, Object> param);

    void deliverStatusConfirm(Map<String, Object> param);

    void addCustomerScoreFreezeByCustomerId(Map<String, Object> param);

    void updateProtectStatusE(Map<String, Object> param);

    Integer getOneCount(Map<String, Object> param);

    List<ProtectPo> getRecProtectPoList(Long recId);

    Integer getOrderState(Map<String, Object> param);

    void updateOrderIsEnd(Map<String, Object> param);

    void setOrderEndTime(Map map);

    void updateOrderEndTime(Map<String, Object> param);

    void addOverRefund(ProtectPo endProtect);

    void updateEndTimeNow(@Param("orderSn") String orderSn);

    void doneVipOrder(String orderSn);

    void updateIntegralOrderIsEnd(Map<String, Object> param);

}
